const app = getApp()
const db = wx.cloud.database()
const _ = db.command

Page({
  /**
   * 页面的初始数据
   */
  data: {
    articleId: null,
    article: null,
    loading: true,
    error: false,
    isFavorite: false,
    relatedProducts: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options.id) {
      this.setData({
        articleId: options.id
      });
      this.fetchArticleDetail(options.id);
    } else {
      this.setData({
        loading: false,
        error: true
      });
    }
  },

  /**
   * 获取文章详情
   */
  fetchArticleDetail: function (id) {
    // 模拟网络请求获取文章数据
    setTimeout(() => {
      // 这里用模拟数据，实际开发中应该使用wx.request获取
      const articleData = {
        id: id,
        title: '园艺基础知识：如何正确给植物浇水',
        author: '绿植专家',
        publishDate: '2023-06-15',
        viewCount: 2458,
        content: '<div class="rich-text"><p>给植物浇水是养护植物的基本技能，但很多人并不了解正确的浇水方法。</p><p>首先，不同植物需要不同的浇水频率。多肉植物和仙人掌等耐旱植物在土壤完全干透后才需要浇水；而蕨类和热带植物则需要保持土壤湿润。</p><p>其次，浇水的时间也很重要。最好在早晨进行浇水，这样可以让植物在白天有足够的时间吸收水分。避免在晚上浇水，因为这可能导致植物长时间处于潮湿状态，增加病害风险。</p><p>第三，浇水的方式也有讲究。应该缓慢地浇水，让水均匀渗透到整个花盆，直到有水从排水孔流出。这样可以确保根系完全吸收到水分。</p><p>最后，水质也会影响植物健康。尽量使用室温的水，避免使用含氯过高的自来水。如果条件允许，可以使用收集的雨水。</p></div>',
        tags: ['园艺技巧', '植物养护', '室内植物', '浇水指南'],
        relatedProducts: [
          {
            id: 'p001',
            name: '自动浇水器',
            image: '/static/images/product/product1.png',
            price: '39.90'
          },
          {
            id: 'p002',
            name: '园艺工具套装',
            image: '/static/images/product/product2.png',
            price: '99.00'
          },
          {
            id: 'p003',
            name: '多肉植物花盆',
            image: '/static/images/product/product3.png',
            price: '29.90'
          },
          {
            id: 'p004',
            name: '营养土',
            image: '/static/images/product/product4.png',
            price: '19.90'
          }
        ]
      };

      if (articleData) {
        this.setData({
          article: articleData,
          relatedProducts: articleData.relatedProducts,
          loading: false
        });
        this.checkIsFavorite(id);
      } else {
        this.setData({
          loading: false,
          error: true
        });
      }
    }, 1000);
  },

  /**
   * 检查是否已收藏
   */
  checkIsFavorite: function (id) {
    const favorites = wx.getStorageSync('favorites') || [];
    const isFavorite = favorites.includes(id);
    this.setData({
      isFavorite: isFavorite
    });
  },

  /**
   * 切换收藏状态
   */
  toggleFavorite: function () {
    const id = this.data.articleId;
    let favorites = wx.getStorageSync('favorites') || [];
    
    if (this.data.isFavorite) {
      favorites = favorites.filter(item => item !== id);
    } else {
      favorites.push(id);
    }
    
    wx.setStorageSync('favorites', favorites);
    
    this.setData({
      isFavorite: !this.data.isFavorite
    });
    
    wx.showToast({
      title: this.data.isFavorite ? '已收藏' : '已取消收藏',
      icon: 'success',
      duration: 1500
    });
  },

  /**
   * 分享
   */
  onShareAppMessage: function () {
    const article = this.data.article;
    return {
      title: article.title,
      path: `/pages/knowledge-detail/knowledge-detail?id=${article.id}`
    };
  },

  /**
   * 返回上一页
   */
  navigateBack: function () {
    wx.navigateBack();
  },

  /**
   * 跳转到产品详情
   */
  goToProduct: function (e) {
    const productId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/product/product?id=${productId}`
    });
  },

  /**
   * 跳转到标签搜索
   */
  goToTagSearch: function (e) {
    const tag = e.currentTarget.dataset.tag;
    wx.navigateTo({
      url: `/pages/knowledge/knowledge?tag=${encodeURIComponent(tag)}`
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    if (this.data.articleId) {
      this.fetchArticleDetail(this.data.articleId);
      wx.stopPullDownRefresh();
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  }
}); 